package Test03;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;

//方法引用：引用成员方法
/*
    方法引用（引用成员方法)
    格式
         其他类:其他类对象::方法名
         本类: this::方法名（引用处不能是静态方法）
         父类: super::方法名（引用处不能是静态方法）
 */
public class Test04 {
    public static void main(String[] args) {
        new LoginJFrame();
    }
}

class LoginJFrame extends MyJFrame {

    JButton go = new JButton("Go");

    public LoginJFrame() {

        //设置界面
        intiJframe();

        //添加组件
        initView();

        //界面显示出来
        this.setVisible(true);
    }

    //设置组件
    public void initView() {

        //设置按钮

        go.setFont(new Font(null, 1, 20));
        go.setBounds(120, 274, 150, 50);
        go.setBackground(Color.WHITE);

        //引用本类
        go.addActionListener(this::method1);

        //引用父类
        go.addActionListener(super::method);

        this.getContentPane().add(go);
    }

    //设置界面
    public void intiJframe() {
        //设置标题
        this.setTitle("随机点名器");
        //设置大小
        this.setSize(400, 500);
        //设置关闭模式
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //设置窗口无法进行调节
        this.setResizable(false);
        //界面居中
        this.setLocationRelativeTo(null);
        //取消内部默认居中放置
        this.setLayout(null);
        //设置背景颜色
        this.getContentPane().setBackground(Color.white);
        this.setAlwaysOnTop(true);//置顶
    }

    //定义点击方法
    public void method1(ActionEvent e) {
        System.out.println("go按钮被点击了");
    }

    public void method2(ActionEvent e) {
        System.out.println("go按钮被点击了");
    }

    public void method3(ActionEvent e) {
        System.out.println("go按钮被点击了");
    }
}

class MyJFrame extends JFrame {
    public void method(ActionEvent e) {
        System.out.println("父类：go按钮被点击了");
    }
}
